package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import modelo.Frase;
import modelo.FraseDAO;
import modelo.Nivel;
import modelo.NivelDAO;

import vista.VentanaFrase;

public class ControladorVentanaFrase implements ActionListener {
	
	private VentanaFrase ventanaFrase;
	private NivelDAO nivelDAO = new NivelDAO();
	private FraseDAO fraseDAO = new FraseDAO();
	
	
	
	public ControladorVentanaFrase() {
		super();
		// TODO Auto-generated constructor stub
		ventanaFrase = VentanaFrase.getInstancia();
		ventanaFrase.setVisible(true);
		ventanaFrase.addListener(this);
		ventanaFrase.setCodigoFrase(String.valueOf(fraseDAO.generarNumeroFrase()));
		ventanaFrase.cargarComboNivel(nivelDAO.llenarComboNivel());
	}

	public void guardarFrase(){
		try
		{
	    	if(ventanaFrase.getCodigoFrase().equals("") || 
	    			ventanaFrase.getDescripcion().equals("") )
	    			ventanaFrase.mostrarMensaje("Debe llenar todos los datos para poder registrar una frase");
	    	else
	    	{
	    		String codigo = ventanaFrase.getCodigoFrase();
	    		String descripcion = ventanaFrase.getDescripcion();
	    		String descripcionNivel = ventanaFrase.getNivel();
	    		
	    		Nivel nivel = nivelDAO.buscarNivel(descripcionNivel);
	    		
	    		Frase frase = new Frase(Integer.parseInt(codigo), descripcion, nivel);
	    		
	    		fraseDAO.registrarFrase(frase);
	    		
	    		ventanaFrase.mostrarMensaje("La frase fue registrada exitosamente");
	    		ventanaFrase.borrarDatos();
	    		
	    		int numero = Integer.parseInt(ventanaFrase.getCodigoFrase())+1;
	    		ventanaFrase.setCodigoFrase(String.valueOf(numero));
	    		
	    	}
		} catch(Exception e) {
			ventanaFrase.mostrarMensaje("No se pudo registrar la categoria, verifique que los datos sean correctos");
			ventanaFrase.borrarDatos();
		}
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
		if ( e.getSource() == ventanaFrase.getComboNivel() ){
			String descripcionNivel =  ventanaFrase.getNivel();
			int tamano = 0;
			if ( descripcionNivel.equals("basico") ){
						tamano = 10;
			}
			else if ( descripcionNivel.equals("intermedio") )
				tamano = 30;
			else if ( descripcionNivel.equals("avanzado"))
				tamano = 60;
			ventanaFrase.actualizarTamanoDescripcion(tamano);
		}
		else if (actionCommand.equals("Guardar")){
			guardarFrase();
		}
		else if (actionCommand.equals("Cancelar")) {
			ventanaFrase.borrarDatos();
		}
		else if (actionCommand.equals("Salir")){
			this.ventanaFrase.setVisible(false);
		}
	}
	

}
